﻿
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SgaGestionAcceso.Entidad;
using SgaGestionAcceso.Helper;
using System.Data.Common;
using Microsoft.Practices.EnterpriseLibrary.Common.Configuration;
using Microsoft.Practices.EnterpriseLibrary.Data;
using System.Data;
namespace SgaGestionAcceso.AccesoDatos
{
   public class DAMenu
    { 
       #region Variables
        private Database db;
        #endregion

        #region Constructor
        public DAMenu()
        {
            db = EnterpriseLibraryContainer.Current.GetInstance<Database>();
        }
        #endregion

        #region Metodos
        public BEMenuList ListarPermisoMenuOpciones(int idUsuario)
        {
            BEMenuList listaBeMenu;

            DbCommand cmd = db.GetStoredProcCommand("up_PermisoMenu_Listar_Menu_Acceso");
            db.AddInParameter(cmd, "IdUsuario", DbType.Int32, idUsuario);
         

            listaBeMenu = new BEMenuList();
            using (IDataReader dr = db.ExecuteReader(cmd))
            {
                BEMenu beMenu = null;
                while (dr.Read())
                {
                    beMenu = new BEMenu();
                    beMenu.IdMenu = Convert.ToInt16(dr["IdMenu"].ToString());

                    beMenu.NombreFisicoMenu = dr["NombreFisicoMenu"].ToString();
                    beMenu.DescripcionMenu = dr["DescripcionMenu"].ToString();
                    beMenu.EtiquetaMenu = dr["EtiquetaMenu"].ToString();

                    beMenu.UrlMenu = dr["UrlMenu"].ToString();
                    if (dr["IdMenuPadre"] != DBNull.Value)
                    {
                        beMenu.IdMenuPadre = Convert.ToInt16(dr["IdMenuPadre"].ToString());
                    }
                    else
                    {
                        beMenu.IdMenuPadre = -1;
                    }

                    beMenu.EstadoMenu = Convert.ToBoolean(dr["EstadoMenu"]);
             
                    listaBeMenu.Add(beMenu);
                }
            }

            return listaBeMenu;
        }

        #endregion
    }
}
